This invention pertains to game logic employed in or for gaming machines. More specifically, the invention pertains to techniques for representing arrangements of game symbols (e.g., poker cards, slot symbols, or keno tokens) as a function of position (e.g., card position in a poker hand, payline position on a slot machine, or position on a keno board).
Modern gaming machine technology has a need for generating and/or displaying each of the various possible “game arrangements” for all games that can be played on a gaming machine. These arrangements may be associated with a beginning game state, an ending game state, or an intermediate game state. In a slot machine, the beginning game state is the position of particular symbols on reels before the slot game is initiated. The ending game state is the final position of the symbols on the reels after the game play has concluded. For example, one game arrangement might be Bar, Lemon, Bar across a slot machine payline. In a poker game, the beginning game state may be a hand as dealt and an ending game state may be a hand after one or more cards have been discarded and redrawn.
It should be intuitively obvious that there are great numbers of possible game arrangements for even the simplest games. For example, a single deck 5-card draw poker game has over 2.5 million combinations of discrete poker hand card arrangements. These maybe viewed as varying from 2H (the 2 of Hearts), 3H, 4H, 5H, 6H on up to 10S (the 10 of Spades), JS, QS, KS, AS.
The computational logic provided with many gaming machines represents these game arrangements “as such.” For example, each hand of a 5-card draw poker game will be represented as 5 separate symbols (e.g., 2H, 3H, 4H, 5H, 6H; 2H, 3H, 4H, 5H 7H; 2H, 3H, 4H, 5H, 8H; etc.). Again, the symbols represent individual poker cards, slot machine symbols, keno tokens, checkers, etc. Not surprisingly, such representations can consume significant memory space. Typically, a single poker card will be represented by a single byte. (Technically only 6 bits are required, but for convenience most systems will use an entire byte). Hence, each poker hand may require 5 bytes of storage.
While the price of memory continues to drop, the need for more memory is rising at a faster pace. And for some aspects of gaming machine operation, specialized, expensive memory is required. For example, in order to save game “histories” in the event of a power failure of other malfunction, gaming machines include nonvolatile memory that saves snapshots of game play arrangements for a number of recent games. Obviously, it would be desirable to store greater numbers of game play arrangements in a given amount of nonvolatile memory, or any other form of memory for that matter.
Also, some operations used in gaming can require significant processing to evaluate various combinations of game arrangements. For example, the “autohold” decision employed in video poker must determine whether or not to “hold” when presented with a particular gaming arrangement (drawn poker hand). In video poker, a random number generator draws one hand for the machine and another hand for the player. Subsequently, the machine must determine whether or not it should hold its current hand as such. This is accomplished using the autohold table or associated decision logic programmed based on insights of experienced poker players. Autohold decisions are implemented by matching a currently drawn hand (e.g. 2H, 5D, KD, KC, 4S) against representations of poker hands provided by the game logic. Such comparisons are computationally expensive.
Determining payouts from slot machines based upon particular game arrangements may also require significant computational expense. In many cases, the game logic must compare a combination of symbols generated by random number generator against entries in a pay table to determine an amount of payout. Using a full representation of the arrangement of slot symbols “as such” (e.g. Bar, Bar, Bar on one payline and Cherry, Cherry, Cherry on a different payline) can be computationally expensive.
Gaming machines and games are becoming increasingly sophisticated and complex from a computational perspective. This results from more game options, more bonus games, more interactive features, 3-dimensional and other sophisticated graphics, etc. Therefore, machines that could efficiently represent game arrangements (e.g., poker hands, keno token positions, combinations of slot reel positions, etc.) would help reduce the computational demands on gaming machine processors and thereby improve performance.